<%@ page import="tech.aistar.pojo.User" %>
<%@ page import="java.io.PrintWriter" %><%--
  1. 动态包含和静态包含区别
  2. foward和include包含区别
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>jsp动作</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

</head>
<body>
    <%--    jsp动作存在的背景 - 尽可能让jsp中的java代码减少--%>
    <%
        User user = new User();
        user.setUsername("admin");

        request.setAttribute("u",user);
    %>
<%--    id属性值肯定是唯一的,代表的意思就是对象名称/作用域中的key
        scope就是用来指定这个对象放在哪个作用域中,默认在page作用域
        jsp中四大作用域 - page[当前jsp文件中生效],request,session,application
--%>
    <jsp:useBean id="u1" class="tech.aistar.pojo.User" scope="page"></jsp:useBean>
<%--    name指向的是某个对象的名称--%>
    <jsp:setProperty name="u1" property="username" value="tom"></jsp:setProperty>
    <jsp:getProperty name="u1" property="username"/><br>

<%--    jsp的表达式--%>
    <%=user%><br>
    <%=u1%><br>
    <hr>
    <%--    ${}只能获取作用域中的对象--%>
    ${u}<br>
    ${u1}
    <hr>

<%--    转发--%>
<%--    <%--%>
<%--        request.getRequestDispatcher().forward();--%>
<%--    %>--%>

<%--    <jsp:forward page="4-active-01.jsp?name=tom"></jsp:forward>--%>
<%--        <jsp:forward page="4-active-01.jsp">--%>
<%--            <jsp:param name="name" value="admin"/>--%>
<%--        </jsp:forward>--%>

<%--    动态包含 - 相当于servlet中的转发包含的意思
        1. 生成2个.java文件
        2. 静态包含发生在：JSP—->java文件阶段。动态包含发生在：执行class文件阶段动态加入,把俩个文件执行的结果合并了.

        共同点 - 都是可以共享request作用域中的数据

        Forward VS Include区别
        1. forward之前系统会清空输出流缓存区的内容
        2. include不交出执行权，而forward交出执行权
    --%>
<%--    <jsp:include page="4-active-01.jsp?name=success"></jsp:include>--%>

<%--    <%--%>
<%--        PrintWriter outs = response.getWriter();--%>
<%--        response.sendRedirect("/aistar/user/loginView");--%>

<%--        out.close();--%>

<%--    %>--%>
</body>
</html>
